Направо към съдържанието

Команда (шаблон)

от Уикипедия, свободната енциклопедия

Команда (на английски: Command) е поведенчески шаблон за дизайн, който се използва в обектно-ориентираното програмиране.

Този дизайнерски шаблон има следните приложения:

  • Многостепенни отмени (undo) – В графични приложения в които има повече от една степен на отмяна на резултатите от предишното действие
namespace CommandDesignPattern
{
         //производните обекти на този клас правят заявки според предадените им командни обекти
	class Invoker
	{
		private Command command;
		public void SetCommand ( Command command)
		{
			this.command = command;
		}
                 //този метод извиква командата
		public void ExecuteCommand ()
		{
			command.Execute ();
		}
	} //eof class

        //производните обекти на този клас получават
	class Receiver
	{
		public void Action ()
		{
			Console.WriteLine ( "Called ...");
		}
	} //eof Receiver

	abstract class Command
	{
		protected Receiver receiver;
		public Command ( Receiver receiver)
		{
			this.receiver = receiver;
		}
		public abstract void Execute ();
	} //eof class

	class ConcreteCommand : Command
	{
		public ConcreteCommand ( Receiver receiver)
			: base ( receiver)
		{
		}
		public override void Execute ()
		{
			receiver.Action ();
		}
	}

	class Program
	{ //главният метод на приложението
		static void Main ()
		{
			Receiver receiver = new Receiver (); //създаване на обекта получател
			// Remember that you don´t really need an receiver if you don´t want it.
			Command command = new ConcreteCommand ( receiver);
			Invoker invoker = new Invoker (); //създаване на заявяващия обект
			invoker.SetCommand ( command); //конфигуриране на командата според типа и
			invoker.ExecuteCommand (); //изпълняване на командата
			Console.ReadLine (); //използван само за спиране на конзолата
		} //eof Main

	} //eof class
}//eof namespace